package two_dimensional_array;

public class Knowledge {
	/*
	 * 对一个二维数组（包含三个数组的）进行赋值
	 * 其值为（列数+2）*行数
	 * 并对其遍历输出
	 * 
	 * 
	 * 
	 * 
	 * 不规则二维数组
	 * 不规则二维数组中，某些行列数不相同；
	 * 产生的原因：二维数组在声明定义时，行的长度没有定义
	 * 注：不规则二维数组还是连续存储的
	 * 不会按最长的数组看齐（不会受其他行的长度影响）
	 * 
	 * */

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*定义一个二维数组
		 * 定义方式有：
		 * int[][] array=new int[行]  [列]；
		 * int[][] array=new int[]{{},{},{} ……}
		 * int[][] array={{},{},{},{},{}}
		 * */
		int[][] array1=new int[3][4];
		/*对二维数组用循环赋值
		 * 用for()嵌套语句赋值
		 * 第一层for()中遍历的是行，也就是二维数组中的一维数组的个数
		 * 第二层for()中遍历的是列，也就是一维数组中的元素个数
		 * 
		 * */
		for(int x=0;x<array1.length;x++) {
			for(int y=0;y<array1[x].length;y++) {
				array1[x][y]=(x+2)*y;
			}
		}
		/*
		 * 遍历出二维数组的所有元素
		 * 用for()增强嵌套语句完成
		 * 先遍历二维数组的行，也就是二维数组中的一维数组
		 * 再遍历一维数组的元素
		 * */
		for(int[] x : array1) {
			for(int y: x) {
				System.out.print(" "+y);
			}System.out.println();
		}
		
		
	}

}
